package _05_genList;

public interface GenLList<T> {
    // 判空
    public boolean isEmpty();
    // 返回广义表长度
    int size();
    // 返回广义表深度
    int depth();
    // 返回第i个结点，0 <= i < 表长度
    GenNode<T> get(int i);
    // 插入原子x作为第i个结点，返回插入结点
    GenNode<T> insert(int i, T x);
    // 插入子表genlist作为第i个结点，返回插入结点
    GenNode<T> insert(int i, GenList<T> genlist);
    // 删除第i个结点，0 <= i < 表长度，返回被删除结点
    GenNode<T> remove(int i);
    // 删除所有结点，头结点和表名仍在
    void clear();
    // 查找并返回首个与key相等的原子结点
    GenNode<T> search(T key);
    // 查找并删除首个与key相等的原子结点，返回被删除结点
    GenNode<T> remove(T key);
    
    
}
